Scroll to navigation

PROC(5) Руководство программиста Linux PROC(5)

ИМЯ

proc - псевдо-файловая система с информацией о процессах

ОПИСАНИЕ

Файловая система proc — это псевдо-файловая система, которая используется в качестве интерфейса к структурам данных ядра. Обычно она монтируется в /proc. Её большая часть доступна только для чтения, однако некоторые файлы позволяют изменять значения переменных ядра.

Следующее описание предоставит обзорную информацию об иерархии /proc.

/proc/[pid]
Эти числовые подкаталоги соответствуют работающим процессам; имя подкаталога соответствует идентификатору процесса. Каждый подкаталог содержит следующие псевдо-файлы и каталоги.
/proc/[pid]/auxv (начиная с версии 2.6.0-test7)
Содержит информацию, полученную интерпретатором ELF и переданную процессу во время выполнения. Формат — это один идентификатор типа unsigned long ID и по одному значению типа unsigned long для каждого из элементов. Последний элемент содержит два нуля.
/proc/[pid]/cgroup (начиная с Linux 2.6.24)
В этом файле описаны группы управления, которым принадлежит процесс/задача. Каждая иерархия cgroup описывается одним элементом, состоящим из следующих полей (через двоеточие):
    5:cpuacct,cpu,cpuset:/daemons
Поля, разделяемые двоеточием, слева направо:
1.
идентификационный номер иерархии
2.
список подсистем, привязанных к иерархии
3.
управляющая группа в иерархии, которой принадлежит процесс
Этот файл существует только, если включён параметр настройки ядра CONFIG_CGROUPS.
/proc/[pid]/cmdline
Содержит полную командную строку процесса, если процесс не является зомби. В последнем случае этот файл пуст, поэтому чтение из него вернёт 0 символов. Аргументы командной строки в этом файле представлены в виде набора строк, разделённых байтами null ('\0') и байтом null после последней строки.
/proc/[pid]/coredump_filter (начиная с версии 2.6.23)
Смотрите core(5).
/proc/[pid]/cpuset (начиная с версии 2.6.12)
Смотрите cpuset(7).
/proc/[pid]/cwd
Это символьная ссылка на текущий рабочий каталог процесса. Например, чтобы узнать текущий каталог процесса 20, вы должны проделать следующее:


$ cd /proc/20/cwd; /bin/pwd

Отметим, что команда pwd часто является встроенной в оболочку, и поэтому может работать не корректно. В bash(1) вы можете воспользоваться pwd -P.

В многонитиевых процессах, содержимое этой символьной ссылки недоступно, если головная нить уже завершила работу (обычно с помощью вызова pthread_exit(3)).

/proc/[pid]/environ
Этот файл содержит переменные окружения процесса. Элементы разделяются нулевыми байтами ('\0'), а также может быть нулевой байт в конце. Так, чтобы вывести переменные окружения процесса 1, вы можете сделать следующее:
$ (cat /proc/1/environ; echo) | tr '\000' '\n'

/proc/[pid]/exe
В ядрах Linux 2.2 и более поздних, этот файл является символьной ссылкой, содержащей полное имя файла выполняемой команды. Эта символьная ссылка обычно может быть разыменована; при попытке открыть её откроется выполняемый файл. Вы можете ввести /proc/[pid]/exe, чтобы запустить другую копию того же выполняемого файла, что выполняется системой в качестве процесса [pid]. В многонитиевых процессах содержимое этой символьной ссылки недоступно, если главная нить уже завершила работу (обычно с помощью вызова pthread_exit(3)).

В ядрах Linux 2.0 и более ранних, /proc/[pid]/exe указывает на двоичный файл, который был выполнен, и работает как символьная ссылка. Вызов readlink(2) над этим файлом в Linux 2.0 вернёт строку следующего вида:


[device]:inode

Например, [0301]:1502 указывает на inode 1502 на устройстве со старшим номером устройства 03 (IDE, MFM, и т.п. диски), младшим номером 01 (первый раздел на первом диске).

Для поиска файла можно воспользоваться find(1) с параметром -inum.

/proc/[pid]/fd
Этот подкаталог содержит одну запись для каждого файла, открытого процессом, которая называется дескриптором, и которая является символьной ссылкой на настоящий файл. Так, 0 — это стандартный поток ввода, 1 — стандартный поток вывода, 2 — стандартный поток ошибок и т.п.

В многонитиевых процессах, содержимое этого каталога недоступно, если главная нить уже завершила работу (обычно при помощи вызова pthread_exit(3)).

Программы, использующие указанные в аргументах файлы в качестве стандартного потока ввода или стандартного потока вывода, но не использующие свои настоящие стандартный поток ввода или стандартный поток вывода, тем не менее могут использоваться для работы с настоящими стандартным потоком ввода или стандартным потоком вывода, если воспользоваться для этого /proc/[pid]/fd. Например, подразумевая что -i является флагом, обозначающим входной файл и -o является флагом, обозначающим выходной файл, вы можете указать:

$ foobar -i /proc/self/fd/0 -o /proc/self/fd/1 ...

и вы получите работающий фильтр.

/proc/self/fd/N — это примерно то же, что и /dev/fd/N на некоторых системах UNIX и подобных им. Фактически, большинство сценариев MAKEDEV в Linux создают символьную ссылку с именем /dev/fd на файл /proc/self/fd.

Большинство систем предоставляют символьные ссылки /dev/stdin, /dev/stdout и /dev/stderr, которые соответствуют ссылкам на файлы 0, 1 и 2 в /proc/self/fd. Так, пример указанной выше команды может быть переписан в следующем виде:

$ foobar -i /dev/stdin -o /dev/stdout ...

/proc/[pid]/fdinfo/ (начиная с версии 2.6.22)
Это подкаталог, содержащий по одной записи для каждого файла, открытого процессом, называемой его файловым дескриптором. Содержимое каждого файла может быть прочитано для получения информации о соответствующем файловом дескрипторе, например:
$ cat /proc/12015/fdinfo/4
pos:    1000
flags:  01002002

Поле pos содержит десятичное число, показывающее текущее смещение в файле. Поле flags содержит восьмеричное число, отображающее режим доступа к файлу и флаги состояния файла (см. open(2)).

Файлы в этом каталоге доступны на чтение только владельцу процесса.

/proc/[pid]/limits (начиная версии ядра 2.6.24)
В этом файле содержатся мягкие и жёсткие ограничения (limit), а также измерения по каждого ограничению ресурсов процесса (см. getrlimit(2)). Файл доступен на чтение только реальному UID процесса.
/proc/[pid]/maps
Файл, содержащий адреса областей памяти, которые используются программой в данный момент и права доступа к ним.

Формат:

address           perms offset  dev   inode   pathname
08048000-08056000 r-xp 00000000 03:0c 64593   /usr/sbin/gpm
08056000-08058000 rw-p 0000d000 03:0c 64593   /usr/sbin/gpm
08058000-0805b000 rwxp 00000000 00:00 0
40000000-40013000 r-xp 00000000 03:0c 4165    /lib/ld-2.2.4.so
40013000-40015000 rw-p 00012000 03:0c 4165    /lib/ld-2.2.4.so
4001f000-40135000 r-xp 00000000 03:0c 45494   /lib/libc-2.2.4.so
40135000-4013e000 rw-p 00115000 03:0c 45494   /lib/libc-2.2.4.so
4013e000-40142000 rw-p 00000000 00:00 0
bffff000-c0000000 rwxp 00000000 00:00 0

где "address" — это адресное пространство, занятое процессом, а "perms" — права доступа к нему:


r = можно читать w = можно писать x = можно выполнять s = можно использовать несколькими процессами совместно p = личная (копирование при записи)

"offset" — это смещение в файле/где-то ещё, "dev" — это устройство (старший номер:младший номер), а "inode" — это индексный дескриптор на данном устройстве. 0 означает, что с данной областью памяти не ассоциированы индексные дескрипторы: примером тому является сегмент BSS (неинициализированные данные).

В Linux 2.0 поле, указывающее на имя файла, отсутствует.

/proc/[pid]/mem
Этот файл можно использовать для получения доступа к страницам памяти процесса через вызовы open(2), read(2) и lseek(2).
/proc/[pid]/mountinfo (начиная с Linux 2.6.26)
В этом файле содержится информация о точках монтирования. Формат строк:
36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
(1)(2)(3)   (4)   (5)      (6)      (7)   (8) (9)   (10)         (11)
Описания полей (номер представлен в скобках):
(1)
ID монтирования: уникальный идентификатор монтирования (может использоваться повторно после umount(2)).
(2)
родительский ID: ID родительского монтирования (или ID самого себя для вершины дерева монтирования).
(3)
старший:младший: значение st_dev для файлов на файловой системе (см. stat(2)).
(4)
корень: корень монтирования в файловой системе.
(5)
точка монтирования: точка монтирования относительно корня процесса.
(6)
параметры монтирования: параметры данного монтирования.
(7)
необязательные поля: ноль или более полей в виде "метка[:значение]".
(8)
разделитель: отмечает конец необязательных полей.
(9)
тип файловой системы: имя файловой системы в виде "тип[.подтип]".
(10)
источник монтирования: информация, специфичная для файловой системы или "none".
(11)
параметры суперблока: параметры конкретного суперблока.
Анализаторы должны игнорировать все неизвестные необязательные поля. Необязательные поля на данный момент:
монтирование используется всеми из группы X
монтирование подчиняется группе X
монтирования подчиняется и получает распространение от группы X (*)
монтирование недоступно для привязки
(*) X — это ближайший основной член группы корня процесса. Если X является непосредственным хозяином монтирования, или если нет основной группы под тем же корнем, то присутствует только поле "master:X" и нет поля "propagate_from:X".

Подробней о концепции распространения монтирования смотрите в исходном коде ядра в файле Documentation/filesystems/sharedsubtree.txt.

/proc/[pid]/mounts (начиная с Linux 2.4.19)
В файле содержится список всех смонтированных файловых систем в пространстве имён монтирования процесса. Формат файла описан в fstab(5). Начиная с ядра версии 2.6.15, этот файл можно опрашивать: после открытия файла на чтение, изменение в этом файле (т.е., монтирование или размонтирование файловой системы) заставляет select(2) пометить файловый дескриптор как доступный для чтения, а poll(2) и epoll_wait(2) помечают файл как имеющий ошибочное состояние.
/proc/[pid]/mountstats (начиная с Linux 2.6.17)
В этом файле содержится информация (статистика, информация о настройке) о точках монтирования в пространстве имён процесса. Формат строк:
device /dev/sda7 mounted on /home with fstype ext3 [statistics]
(       1      )            ( 2 )             (3 ) (4)
Поля каждой строки:
(1)
Имя смонтированного устройства (или "nodevice", если нет соответствующего устройства).
(2)
Точка монтирования в дереве файловой системы.
(3)
Тип файловой системы.
(4)
Необязательная статистика и информация о настройке. В настоящее время (Linux версии 2.6.26), в этом поле доступна информация о файловых системах NFS.
Данный файл доступен на чтение только владельцу процесса.
/proc/[pid]/ns/ (начиная с Linux 3.0)
В этом подкаталоге содержится по одной записи на каждое пространство имён, для которых в setns(2) есть поддержка изменения. Информацию о пространствах имён смотрите в clone(2).
/proc/[pid]/ns/ipc (начиная с Linux 3.0)
При псевдонимном монтировании этого файла (смотрите mount(2)) куда-то ещё в файловой системе оставляет действующим пространство имён IPC процесса заданного pid, даже если все процессы в пространстве имён завершились.

При открытии этого файла возвращается файловый указатель для пространства имён IPC процесса заданного pid. Пока этот файловый дескриптор остаётся открытым, пространство имён IPC будет оставаться действующим, даже если все процессы в пространстве имён завершились. Файловый дескриптор может быть передан setns(2).

/proc/[pid]/ns/net (начиная с Linux 3.0)
При псевдонимном монтировании этого файла (смотрите mount(2)) куда-то ещё в файловой системе оставляет действующим сетевое пространство имён процесса заданного pid, даже если все процессы в пространстве имён завершились.

При открытии этого файла возвращается файловый указатель для сетевого пространства имён процесса, заданного pid. Пока этот файловый дескриптор остаётся открытым, сетевое пространство имён будет оставаться действующим, даже если все процессы в пространстве имён завершились. Файловый дескриптор может быть передан setns(2).

/proc/[pid]/ns/uts (начиная с Linux 3.0)
При псевдонимном монтировании этого файла (смотрите mount(2)) куда-то ещё в файловой системе оставляет действующим пространство имён UTS процесса заданного pid, даже если все процессы в пространстве имён завершились.

При открытии этого файла возвращается файловый указатель для пространства имён UTS процесса заданного pid. Пока этот файловый дескриптор остаётся открытым, пространство имён UTS будет оставаться действующим, даже если все процессы в пространстве имён завершились. Файловый дескриптор может быть передан setns(2).

/proc/[pid]/numa_maps (начиная с Linux 2.6.14)
Смотрите numa(7).
/proc/[pid]/oom_adj (начиная с Linux 2.6.11)
Этот файл может использоваться для подгонки оценки, используемой при выборе процесса, который нужно завершить при нехватке памяти (OOM). Ядро использует это значение в операции побитового сдвига значения oom_score у процесса: допустимые лежат находятся в диапазоне от -16 до +15, плюс специальное значение -17, которое отключает OOM-завершение для этого процесса совсем. Положительная оценка увеличивает вероятность, что процесс будет завершён OOM-killer; отрицательная оценка уменьшает вероятность. Значение по умолчанию в этом файле равно 0; новый процесс наследует его от родительского значения oom_adj. Для изменения этого файла процесс должен иметь мандат CAP_SYS_RESOURCE.
/proc/[pid]/oom_score (начиная с Linux 2.6.11)
Этот файл содержит текущую оценку, которую ядро назначило процессу, учитывающуюся при избрании процесса OOM-killer. Более высокая оценка означает, что у процесса есть больше шансов быть выбранным OOM-killer. Основой оценки является количество памяти используемой процессом и различные увеличивающие (+) и уменьшающие (-) факторы:
  • создавал ли процесс много потомков с помощью fork(2) (+);
  • долго ли работал процесс, или использовал много процессорного времени (-);
  • имеет ли процесс низкое значение любезности (nice) (т.е., > 0) (+);
  • считается ли процесс привилегированным (-); и
  • обращается ли процесс к аппаратному обеспечению напрямую (-).
Значение oom_score также отражает подгонку побитового смещения, указанную в oom_adj этого процесса.
/proc/[pid]/root
UNIX и Linux поддерживают идею о корневом каталоге файловой системы для каждого процесса, который может быть установлен системным вызовом chroot(2). Этот файл является символьной ссылкой, которая указывает на корневой каталог процесса и ведёт себя так же, как exe, fd/* и т.д.

В многонитиевых процессах, содержимое этой символьной ссылки недоступно, если головная нить уже завершила работу (обычно с помощью вызова pthread_exit(3)).

/proc/[pid]/smaps (начиная с Linux 2.6.14)
Этот файл содержит значение потребления памяти каждого отображения процесса. Для каждого отображения есть несколько строк в виде:
08048000-080bc000 r-xp 00000000 03:02 13130      /bin/bash
Size:               464 kB
Rss:                424 kB
Shared_Clean:       424 kB
Shared_Dirty:         0 kB
Private_Clean:        0 kB
Private_Dirty:        0 kB
    

В первой строке показана идентичная информация что и для отображения в /proc/[pid]/maps. В остальных строках представлен размер отображения, количество отображения, находящегося в данный момент в оперативной памяти, количество чистых и грязных общих страниц в отображении и число чистых и грязных личных страниц отображения.

Этот существует только если включён параметр настройки ядра CONFIG_MMU.

/proc/[pid]/stat
Информация о состоянии процесса. Она используется командой ps(1). Определяется в /usr/src/linux/fs/proc/array.c.

Вот поля с соответствующими им спецификаторами формата scanf(3) по порядку:

Идентификатор процесса.
Имя исполняемого файла в круглых скобках. Его можно увидеть независимо от того, находится ли исполняемый файл в подкачке или нет.
Один из символов из строки "RSDZTW", где R — запущен, S — процесс спит в прерываемом ожидании, D — процесс ожидает в непрерываемом состоянии окончания дисковой операции, Z — процесс является зомби, T — процесс трассируется или остановлен (по сигналу) и W — процесс вызывается.
Идентификатор (PID) родительского процесса.
Идентификатор группы процесса.
Идентификатор сеанса процесса.
Управляющий терминал процесса. (Младший номер устройства определяется сочетанием бит: c 31 по 20 и с 7 по 0; старший номер устройства расположен в битах с 15 по 8.)
Идентификатор группы процесса, которая в настоящий момент владеет управляющим терминалом, к которому подключён данный процесс.
Слово флагов процесса в ядре. Назначение бит определено в PF_* <linux/sched.h>. Отдельные части зависят от версии ядра.
Количество незначительных промахов процесса, которые не потребовали загрузки страницы памяти с диска.
Количество незначительных промахов процесса, которые возникли при ожидании окончания работы процессов-потомков.
Количество значительных промахов процесса, которые потребовали загрузки страницы памяти с диска.
Количество значительных промахов процесса, которые возникли при ожидании окончания работы процессов-потомков.
Количество времени, которое было запланировано для работы процесса в пользовательском режиме, измеряется в тиках (поделённое на sysconf(_SC_CLK_TCK). Сюда включено гостевое время, guest_time (время, потраченное на работу виртуального ЦП, см. далее), так что приложения, которые не учитывают гостевое поле, не потеряют его при вычислениях.
Количество времени, которое было запланировано для работы процесса в режиме ядра, измеряется в тиках (поделённое на sysconf(_SC_CLK_TCK).
Количество времени, которое было запланировано для работы процесса в пользовательском режиме для ожидания окончания работы процессов-потомков, измеряется в тиках (поделённое на sysconf(_SC_CLK_TCK) (см. также times(2)). Сюда включено гостевое время, cguest_time (время, потраченное на работу виртуального ЦП, см. далее).
Количество времени, которое было запланировано для работы процесса в режиме ядра для ожидания окончания работы процессов-потомков, измеряется в тиках (поделённое на sysconf(_SC_CLK_TCK).
(Объяснение относится к Linux 2.6) Для процессов, работающих согласно политике планирования в реальном времени (policy далее; см. sched_setscheduler(2)), это значение задаёт приоритет при планировании за вычетом 1; то есть число в диапазоне от -2 до -100 соответствует приоритетам реального времени от 1 до 99. Для процессов, работающих без политики планирования в реальном времени, это неизменённое значение любезности (setpriority(2)) в том же виде в каком оно представлено в ядре. Ядро хранит значения любезности в виде чисел в диапазоне от 0 (высокое) до 39 (низкое), что соответствует диапазону пользователя от -20 до 19.

До Linux 2.6 это была пересчитанная величина на основе весов планировщика для определённого процесса.

Значение любезности (см. setpriority(2)) задаётся числом в диапазоне от 19(низкий приоритет) до -20 (высокий приоритет).
Число нитей в этом процессе (начиная с Linux 2.6). До ядер ветви 2.6 это поле всегда имело значение 0 в качестве заменителя ранее удалённых полей.
Время в мигах (jiffies) перед следующей посылкой процессу сигнала SIGALRM при срабатывании таймера интервала. Начиная с версии 2.6.17 это поле больше не обновляется и всегда имеет значение 0.
Время в мигах до запуска процесса от момента начальной загрузки системы.
Размер виртуальной памяти в байтах.
Резидентный размер: количество страниц, которое занимает процесс в реальной памяти. Это только те страницы, которые заняты кодом, данными и пространством стека. Сюда не включаются страницы, которые не были загружены по требованию или которые находятся в пространстве подкачки.
Текущее мягкое ограничение rss процесса в байтах; смотрите описание RLIMIT_RSS в getpriority(2).
Адрес, выше которого может выполняться код программы.
Адрес, ниже которого может выполняться код программы.
Адрес начала (то есть низ) стека.
Текущее значение ESP (указателя стека) для данного процесса, которое следует из страницы стека в ядре.
Текущее значение EIP (указатель инструкций).
Карта ожидающих сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте /proc/[pid]/status.
Карта блокированных сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте /proc/[pid]/status.
Карта игнорированных сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте /proc/[pid]/status.
Карта перехваченных сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте /proc/[pid]/status.
Это "канал", в котором ожидает процесс. Он является адресом системного вызова и может быть найден в списке имён, если вам нужно текстовое имя. (Если у вас актуальный /etc/psdatabase, то попробуйте выполнить ps -l, чтобы увидеть поле WCHAN в действии).
Количество страниц в своппинге (не сопровождается).
Суммарное значение nswap для процессов-потомков (не сопровождается).
Сигнал, который будет послан родителю, когда процесс завершит работу.
Номер процессора, на котором последний раз выполнялся процесс.
Приоритет выполнения в реальном времени, число из диапазона от 1 до 99 для процессов запланированных выполняться согласно политике реального времени или 0 для процессов, выполняющихся не в реальном времени (см. sched_setscheduler(2)).
Политика планирования (см. sched_setscheduler(2)). Декодируется с помощью констант SCHED_* из linux/sched.h.
Суммарная задержка блочного ввода-вывода, измеряется в тиках (сотых долях секунды).
Гостевое время процесса (время, потраченное на работу виртуального ЦП гостевой операционной системы), измеряется в тиках (поделённых на sysconf(_SC_CLK_TCK).
Гостевое время потомка процесса, измеряется в тиках (поделённых на sysconf(_SC_CLK_TCK).
/proc/[pid]/statm
Предоставляет информацию об использовании памяти, измеряется в страницах. Колонки:
size       общий размер программы

(тоже что и VmSize в /proc/[pid]/status) resident размер резидентной части
(тоже что и VmRSS в /proc/[pid]/status) share страницы общего пользования (из общих отображений) text текст (код) lib библиотека (не используется в Linux 2.6) data данные + стек dt грязные страницы (не используется в Linux 2.6)

/proc/[pid]/status
В основном, предоставляет информацию из /proc/[pid]/stat и /proc/[pid]/statm в более лёгком для прочтения человеком формате. Пример:
$ cat /proc/$$/status
Name:   bash
State:  S (sleeping)
Tgid:   3515
Pid:    3515
PPid:   3452
TracerPid:      0
Uid:    1000    1000    1000    1000
Gid:    100     100     100     100
FDSize: 256
Groups: 16 33 100
VmPeak:     9136 kB
VmSize:     7896 kB
VmLck:         0 kB
VmHWM:      7572 kB
VmRSS:      6316 kB
VmData:     5224 kB
VmStk:        88 kB
VmExe:       572 kB
VmLib:      1708 kB
VmPTE:        20 kB
Threads:        1
SigQ:   0/3067
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed:   00000001
Cpus_allowed_list:      0
Mems_allowed:   1
Mems_allowed_list:      0
voluntary_ctxt_switches:        150
nonvoluntary_ctxt_switches:     545

Поля:
  • Name: Команда, выполняемая этим процессом.
  • State: Текущее состояние процесса. Может быть "R (работает)", "S (спит)", "D (спит на диске)", "T (остановлен)", "T (остановлен трассировкой)", "Z (зомби)" или "X (завершён)".
  • Tgid: Групповой ID нити (т.е., ID процесса).
  • Pid: ID нити (см. gettid(2)).
  • PPid: PID родительского процесса.
  • TracerPid: PID процесса, который выполняет трассировку данного процесса (0, если трассировки нет).
  • Uid, Gid: Реальный, эффективный, сохранённый и используемый в файловой системе UID (GID).
  • FDSize: Количество слотов файловых дескрипторов выделенных в данный момент.
  • Groups: Список дополнительных групп.
  • VmPeak: Пик размера виртуальной памяти.
  • VmSize: Размер виртуальной памяти.
  • VmLck: Размер заблокированной памяти (см. mlock(3)).
  • VmHWM: Пик размера резидентной памяти ("отметка высоты прилива").
  • VmRSS: Размер резидентной памяти.
  • VmData, VmStk, VmExe: Размер сегментов данных, стека и кода.
  • VmLib: Размер кода общей библиотеки.
  • VmPTE: Размер элементов страничной таблицы (начиная с Linux 2.6.10).
  • Threads: Количество нитей в процессе, содержащем эту нить.
  • SigQ: В этом поле содержится два числа, разделённых косой чертой, которые относятся к сигналам, имеющимся в очереди для реального пользовательского ID этого процесса. Первое число показывает текущее количество сигналов в очереди для реального пользовательского ID, а второе — ограничитель ресурса на количество сигналов в очереди для этого процесса (смотрите описание RLIMIT_SIGPENDING в getrlimit(2)).
  • SigPnd, ShdPnd: Количество сигналов, ждущих обработки нитью и всем процессом (см. pthreads(7) и signal(7)).
  • SigBlk, SigIgn, SigCgt: Маски, отражающие блокированные, игнорируемые и перехваченные сигналы (см. signal(7)).
  • CapInh, CapPrm, CapEff: Маски мандатов, включённые в наследуемый, разрешающий и эффективный наборы (см. capabilities(7)).
  • CapBnd: Мандатный ограничивающий набор (начиная с ядра 2.6.26, см. capabilities(7)).
  • Cpus_allowed: Маска процессоров, на которых может выполняться процесс (начиная с Linux 2.6.24, см. cpuset(7)).
  • Cpus_allowed_list: Тоже что предыдущий, но в "формате списка" (начиная с Linux 2.6.26, см. cpuset(7)).
  • Mems_allowed: Маска узлов памяти, разрешённых для этого процесса (начиная с Linux 2.6.24, см. cpuset(7)).
  • Mems_allowed_list: Тоже что и предыдущее, но в "формате списка" (начиная с Linux 2.6.26, см. cpuset(7)).
  • voluntary_context_switches, nonvoluntary_context_switches: Количество намеренных и непреднамеренных переключений контекста (начиная с Linux 2.6.23).
/proc/[pid]/task (начиная с Linux 2.6.0-test6)
В этом каталоге содержатся подкаталоги, под одному на нить. Имя подкаталога задаётся числом, которое является ID нити ([tid]) (см. gettid(2)). В каждом подкаталоге есть набор файлов с одинаковыми именами и содержимым как у каталогов /proc/[pid]. Для общих атрибутов всех нитей содержимое каждого файла в подкаталогах task/[tid] будет одинаковым, как у соответствующего файла в родительском каталоге /proc/[pid] (например, в многонитевом процессе все файлы task/[tid]/cwd будут иметь одинаковое значение, совпадающее с содержимым файла /proc/[pid]/cwd в родительском каталоге, так как все нити в процессе используют общий рабочий каталог).Для отличающихся атрибутов нитей соответствующие файлы в task/[tid] могут иметь различные значения (например, различные поля в каждом файле task/[tid]/status могут отличаться в каждой нити).

В многонитевом процессе содержимое каталога /proc/[pid]/task недоступно, если выполнение главной нити уже завершилось (обычно вызовом pthread_exit(3)).

/proc/apm
Версия системы расширенного управления питанием и информация о батарее, если ядро собрано с поддержкой CONFIG_APM.
/proc/bus
Содержит подкаталоги для установленных шин.
/proc/bus/pccard
Подкаталог для устройств PCMCIA, если ядро собрано с поддержкой CONFIG_PCMCIA.
/proc/bus/pccard/drivers
/proc/bus/pci
Содержит различные подкаталоги шин и псевдо-файлы, содержащие информацию о шинах PCI, установленных устройствах и драйверах устройств. Некоторые из этих файлов не являются текстовыми.
/proc/bus/pci/devices
Информация о устройствах PCI. К ним можно получить доступ через lspci(8) и setpci(8).
/proc/cmdline
Аргументы, переданные ядру Linux во время начальной загрузки. Часто это делается через менеджер начальной загрузки, такой как lilo(8) или grub(8).
/proc/config.gz (начиная с Linux 2.6)
В этом файле представлены параметры настройки, которые использовались при сборке выполняющегося в данный момент ядра. Если формат одинаков с файлом .config, который создаётся после настройки ядра (с помощью make xconfig, make config и подобных команд). Содержимое файла сжато; для просмотра и поиска используйте zcat(1), zgrep(1) и т.п. Пока не внесены изменения в настройку ядра, содержимое /proc/config.gz и показываемого по команде файла одинаково:
cat /lib/modules/$(uname -r)/build/.config

Файл /proc/config.gz доступен только, если ядро собрано с поддержкой CONFIG_IKCONFIG_PROC.
/proc/cpuinfo
Это коллекция элементов, зависящих от процессора и системной архитектуры; для каждой поддерживаемой архитектуры список различен. Имеются только две общих записи: processor — обозначает номер процессора и bogomips— системная константа, которая высчитывается во время инициализации ядра. Для многопроцессорных машин информация предоставляется по каждому процессору.
/proc/devices
Текстовый список старших (major) номеров устройств и групп устройств. Он может быть использован сценариями MAKEDEV для того, чтобы создать устройства, поддерживаемые ядром.
/proc/diskstats (начиная с Linux 2.5.69)
Файл со статистикой дискового ввода-вывода по каждому устройству. Дополнительная информация доступна в файле Documentation/iostats.txt из исходного кода ядра.
/proc/dma
Список рабочих зарегистрированных каналов DMA (прямого доступа в память) ISA.
/proc/driver
Пустой подкаталог.
/proc/execdomains
Список доменов исполнения (индивидуально для ABI).
/proc/fb
Информация о фрейм-буфере, если ядро собрано с поддержкой CONFIG_FB.
/proc/filesystems
Текстовый список файловых систем, которые встроены в ядро или загружены в данный момент посредством модулей. (Смотрите также filesystems(5).) Если файловая система помечена "nodev", то это означает, что для монтирования блочного устройства не требуется (например, виртуальная файловая система и сетевая файловая система).

В частности, этот файл может использоваться программой mount(8) для поиска нужной файловой системы, если она не указана при монтировании и её тип невозможно определить. При этом пробуются все файловые системы из этого файла (за исключением отмеченных "nodev").

/proc/fs
Пустой подкаталог.
/proc/ide
Данный подкаталог существует в системах с шиной IDE. Для каждого канала IDE и подключенных устройств имеется отдельный каталог. Файлы каталога:


cache              размер буфера в KБ
capacity           количество секторов
driver             версия драйвера
geometry           физическая и логическая геометрия
identify           в шестнадцатеричном виде
media              тип носителя
model              номер модели производителя
settings           настройки драйвера
smart_thresholds   в шестнадцатеричном виде
smart_values       в шестнадцатеричном виде

Утилита hdparm(8) предоставляет доступ к этой информации в дружественном формате.

/proc/interrupts
Используется для записи количества прерываний по каждому процессору и по каждому устройству ввода-вывода. Начиная с Linux 2.6.24 для архитектур i386 и x86_64 (по крайней мере), также включены внутренние прерывания системы (то есть, не связанные с устройством как таковым), такими как NMI (немаскируемые прерывания), LOC (прерывание локального таймера) и для многопроцессорных систем: TLB (прерывание сброса TLB), RES (прерывание перепланирования), CAL (прерывание вызова удалённой функции), и, возможно другие. Очень легко понять, так как записи в ASCII.
/proc/iomem
Карта памяти ввода/вывода в Linux 2.4.
/proc/ioports
Список зарегистрированных областей портов ввода-вывода, которые используются в данный момент.
/proc/kallsyms (начиная с Linux 2.5.71)
Содержит определения экспортируемых ядром символов, используемые инструментами modules(X) для динамической компоновки и связывания загружаемых модулей. В Linux 2.5.47 и ранее был подобный файл ksyms, но имел немного другой синтаксис.
/proc/kcore
Этот файл отображает физическую память системы и хранится в формате ELF core. С помощью этого псевдо-файла и ядра, из которого не убраны таблицы символов (/usr/src/linux/vmlinux), можно использовать GDB для проверки текущего состояния любых структур данных ядра.

Полная длина этого файла — это размер физической памяти (RAM) плюс 4КБ.

/proc/kmsg
Этот файл может быть использован вместо системного вызова syslog(2) для чтения сообщений ядра. Процесс должен иметь привилегии суперпользователя, чтобы читать этот файл, причём делать это может только один процесс. Данный файл невозможно прочесть, если запущен процесс syslog, который использует системный вызов syslog(2) для протоколирования сообщений ядра.

Информация из этого файла извлекается с помощью программы dmesg(1).

/proc/ksyms (Linux 1.1.23-2.5.47)
Смотрите /proc/kallsyms.
/proc/loadavg
Первые три поля в этом файле содержат параметры средней загрузки, которые предоставляют собой количество заданий в очереди выполнения (состояние R) или ожидают дискового ввода-вывода (состояние D) в среднем за 1, 5 и 15 минут. Это то же самое, что и средняя загрузка, которую выдаёт uptime(1) и другие программы. Четвёртое поле состоит из двух чисел, разделённых косой чертой (/). Первое из них показывает количество исполняемых планируемых ядерных элементов в данный момент (процессы, нити). Значение после косой черты показывает количество планируемых ядерных элементов, существующих в системе. В пятом поле содержится PID процесса, который был создан системой последним.
/proc/locks
Этот файл показывает текущие файловые блокировки (flock(2) и fcntl(2)) параметры (fcntl(2)).
/proc/malloc (только до Linux 2.2 включительно)
Данный файл существует только, если ядро собрано с поддержкой CONFIG_DEBUG_MALLOC.
/proc/meminfo
Этот файл содержит статистику по использованию памяти системы. Он используется программой free(1) для формирования отчёта о свободной и используемой памяти (как физической, так и подкачки), а также общей памяти и памяти под буферы, которую использует ядро.
/proc/modules
Текстовый список модулей, которые были загружены системой. Смотрите также lsmod(8).
/proc/mounts
До ядра версии 2.4.19, в этом файле содержался список всех файловых систем, которые примонтированы в настоящий момент.С введением попроцессных пространств имён монтирования в Linux 2.4.19, этот файл стал указывать на /proc/self/mounts, в котором представлен список точек монтирования из пространства монтирования процесса. Формат этого файла описан в fstab(5).
/proc/mtrr
Диапазонные регистры типа памяти. Подробности смотрите в файле дерева исходного кода ядра Documentation/mtrr.txt.
/proc/net
Разные псевдо-файлы, содержащие информацию по какой-либо части сетевой подсистемы. Они содержат структуры в ASCII и прекрасно читаются утилитой cat(1). Однако, стандартная утилита netstat(8) предоставляет более понятную информацию из этих файлов.
/proc/net/arp
Файл содержит читабельный ASCII-дамп ARP таблицы ядра, которая используется для определения адресов. Она покажет как полученные динамически, так и заданные явно записи ARP. Формат файла:


IP-адрес Тип обор. Флаги Аппарат. адрес Маска Устройство 192.168.0.50 0x1 0x2 00:50:BF:25:68:F3 * eth0 192.168.0.250 0x1 0xc 00:00:00:00:00:00 * eth0

Здесь "IP-адрес" это адрес машины в нотации IPv4, "Тип обор." это тип аппаратного обеспечения для этого адреса согласно RFC 826. Флаги — это внутренние флаги структуры ARP(определённые в /usr/include/linux/if_arp.h), а "Аппарат. адрес" — это адрес канального уровня для IP-адреса, если он известен.

/proc/net/dev
Псевдо-файл dev содержит информацию о состоянии сетевых устройств. Она представляет собой количество принятых и отправленных пакетов, количество ошибок и коллизий и другую базовую статистику. Эта информация используется программой ifconfig(8) для вывода отчёта о состоянии устройства. Формат информации:


Интер-| Принято | Передано
фейс |байт пакетов ошиб отбр fifo фрейм сжато мульт-ст|байт пакетов ошиб отбр fifo колл несущ сжато
lo: 2776770 11307 0 0 0 0 0 0 2776770 11307 0 0 0 0 0 0
eth0: 1215645 2751 0 0 0 0 0 0 1782404 4324 0 0 0 427 0 0
ppp0: 1622270 5552 1 0 0 0 0 0 354130 5669 0 0 0 0 0 0
tap0: 7714 81 0 0 0 0 0 0 7714 81 0 0 0 0 0 0
/proc/net/dev_mcast
Определено в /usr/src/linux/net/core/dev_mcast.c:

индекс имя_интерфейса dmi_u dmi_g адрес_dmi 2 eth0 1 0 01005e000001 3 eth1 1 0 01005e000001 4 eth2 1 0 01005e000001
/proc/net/igmp
Internet Group Management Protocol (Протокол Управления Интернет-Группами). Определён в /usr/src/linux/net/core/igmp.c.
/proc/net/rarp
Данный файл использует тот же формат, что и файл arp и содержит текущую обратную базу данных адресов ARP, используемую при работе служб обратного поиска адресов rarp(8). Если поддержки RARP нет в ядре, то этот файл не существует.
/proc/net/raw
Содержит дамп таблицы беспротокольных (RAW) сокетов. Большая часть этой информации не используется ни для чего, кроме отладки. Значение «s»" — это хешируемый слот ядра для сокета, «local_address» — это пара локальный адрес, номер протокола. «St» — это внутреннее состояние сокета. «tx_queue» и «rx_queue» — это исходящая и входящая очереди данных в том, виде в каком они используются в памяти ядра. Поля «tr», «tm->when» и «rexmits» не используются в RAW. Поле «uid» содержит эффективный UID создателя сокета.
/proc/net/snmp
Этот файл содержит ASCII данные, необходимые SNMP-агенту для баз управляющей информации IP, ICMP, TCP и UDP.
/proc/net/tcp
Содержит дамп таблицы TCP-сокетов. Большая часть этой информации не используется ни для чего, кроме отладки. Значение "sl" — это хешируемый слот ядра для сокета, "local_address" — это пара локальный адрес и номер порта. "rem_address" — это пара удалённого локального адреса и номера порта. "St" — это внутреннее состояние сокета. "tx_queue" и "rx_queue" — это исходящая и входящая очереди данных в том, виде в каком они используются в памяти ядра. Поля "tr", "tm->when" и "rexmits" содержат внутреннюю информацию ядра о состоянии сокета и полезны только для отладки. Поле "uid" содержит эффективный UID создателя сокета.
/proc/net/udp
Содержит дамп таблицы UDP-сокетов. Большая часть этой информации не используется ни для чего, кроме отладки. Значение "sl" — это хешируемый слот ядра для сокета, "local_address" — это пара локальный адрес и номер порта. "rem_address" — это пара удалённого локального адреса и номера порта. "St" — это внутреннее состояние сокета. "tx_queue" и "rx_queue" — это исходящая и входящая очереди данных в том, виде в каком они используются в памяти ядра. Поля "tr", "tm->when" и "rexmits" не используются в UDP. Поле "uid" содержит эффективный UID создателя сокета. Формат:


sl local_address rem_address st tx_queue rx_queue tr rexmits tm->when uid
1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0
/proc/net/unix
Показывает список доменных сокетов UNIX, присутствующих в системе, а также их состояния. Формат:
Номер СчётчикСсылок Протокол Флаги    Тип  Состояние Путь

0: 00000002 00000000 00000000 0001 03
1: 00000001 00000000 00010000 0001 01 /dev/printer

Здесь «Номер» — это номер слота в таблице ядра, «СчётчикСсылок» — количество пользователей данного сокета, «Протокол» — в настоящий момент всегда 0, «Флаги» — представляет внутренние флаги ядра, содержащие состояние сокета. «Тип» в настоящий момент всегда равен "1" (датаграммы доменных сокетов UNIX ядром пока не поддерживаются). «Состояние» — это внутреннее состояние сокета, а «Путь» — это путь привязки (если он есть) данного сокета.

/proc/partitions
Содержит старший (major) и младший (minor) номер каждого раздела, а также количество блоков и имя раздела.
/proc/pci
Это список всех устройств PCI, найденных во время инициализации ядра, а также их конфигурация.

Этот файл устарел и был заменён на новый интерфейс /proc для PCI (/proc/bus/pci). Он стал необязательным в Linux 2.2 (доступен, если установлен параметр сборки ядра CONFIG_PCI_OLD_PROC). Он стал ещё более необязательным в Linux 2.4. В Linux 2.6 он стал не рекомендуемым (но ещё доступным через параметр CONFIG_PCI_LEGACY_PROC), и, наконец, был полностью удалён в Linux 2.6.17.

/proc/scsi
Каталог с псевдо-файлом scsi и различными каталогами низкоуровневых драйверов SCSI, которые содержат по одному файлу на каждый SCSI-узел в системе, и которые представляют некоторую информацию о части подсистемы ввода/вывода SCSI. Данные файлы содержат ASCII структуры и прекрасно читаются утилитой cat(1).

Также вы можете писать в некоторые из этих файлов для перенастройки подсистемы или включения/выключения некоторых возможностей.

/proc/scsi/scsi
Это список всех SCSI-устройств, которые известны ядру. Список похож на тот, что выдается при начальной загрузке. scsi в настоящий момент поддерживает только команду add-single-device, которая позволяет суперпользователю добавлять устройства на ходу, без выключения машины.

Команда

echo 'scsi add-single-device 1 0 5 0' > /proc/scsi/scsi
    

заставит адаптер scsi1 просканировать SCSI канал 0, чтобы найти устройство с ID 5 и LUN 0. Если по этому адресу уже есть известное устройство или если заданный адрес неправилен, то будет возвращена ошибка.
/proc/scsi/[имя_драйвера]
[Именем_драйвера] в настоящий момент могут быть: NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx, buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug, seagate, t128, u15-24f, ultrastore или wd7000. Эти каталоги показывают все драйверы, который зарегистрированы хотя бы одним SCSI HBA. Каждый каталог содержит по одному файлу на каждый зарегистрированный узел. Имя каждого узла соответствует номеру, который был получен этим узлом во время инициализации.

Чтение данных файлов обычно показывает информацию о конфигурации драйвера и узла, статистику и т. д.

Записывая в эти файлы, можно добиться различных результатов от разных узлов. Например, командами latency и nolatency суперпользователь может включить и выключить команду кода вычисления задержки в драйвере eata_dma. Командами lockup и unlock суперпользователь может управлять блокировками шины, которые симулирует драйвер scsi_debug.

/proc/self
Этот каталог указывает на процесс, обращающийся к файловой системе /proc, и идентичен каталогу /proc, соответствующему номеру этого процесса.
/proc/slabinfo
Информация о кэшах ядра. Начиная с Linux 2.6.16 этот файл существует только, если включён параметр сборки ядра CONFIG_SLAB. Список столбцов /proc/slabinfo:
cache-name
num-active-objs
total-objs
object-size
num-active-slabs
total-slabs
num-pages-per-slab

Дополнительную информацию смотрите в slabinfo(5).

/proc/stat
Статистика ядра/системы. Различается для разных архитектур. Общие элементы:
Количество времени, измеряемое в единицах USER_HZ (на большинстве архитектур 1/100-я секунды, чтобы получить правильное значение используйте sysconf(_SC_CLK_TCK)), которые система проводит, соответственно, в пользовательском режиме, в пользовательском режиме с низким приоритетом (любезность, nice), в режиме системы и в режиме простаивающих задач. Последнее значение должно быть в USER_HZ раз больше второго значения из псевдо-файла uptime.

В Linux 2.6 эта строка содержит три дополнительных столбца: iowait — время ожидания завершения ввода-вывода (начиная с 2.5.41); irq — время обслуживания прерываний (начиная с 2.6.0-test4); softirq — время обслуживания softirqs (начиная с 2.6.0-test4).

Начиная с Linux 2.6.11 появился восьмой столбец, steal — упущенное время — время, потраченное в других операционных системах при работе в виртуализованном окружении.

Начиная с Linux 2.6.24 появился девятый столбец, guest, в котором содержится время, потраченной на работу виртуального процессора для гостевых операционных систем, управляемых ядром Linux.

Количество страниц, которые система загрузила с диска и выгрузила на диск.
Количество страниц подкачки, которые загружены и выгружены.
Количество прерываний, обработанных с момента загрузки системы, по каждому возможному системному прерыванию. В первом столбце содержится общее количество всех обработанных прерываний; в каждом последующем столбце содержится общее количество по конкретному прерыванию.
(major,minor):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written)
(только в Linux 2.4)
Количество переключений контекста, произошедших в системе.
Время начальной загрузки прошедшее с начала эпохи, 1970-01-01 00:00:00 +0000 (UTC), в секундах.
Количество разветвлений (вызовов fork) с момента начальной загрузки.
Количество процессов в состоянии работы (Linux 2.5.45 и новее).
Количество заблокированных процессов, ожидающих завершения ввода-вывода (Linux 2.5.45 и новее).
/proc/swaps
Используемое пространство подкачки. См. также swapon(8).
/proc/sys
Этот каталог (присутствующий, начиная с версии 1.3.57) содержит несколько файлов и подкаталогов, которые соответствуют переменным ядра. Эти переменные могут быть прочитаны и иногда изменены с через файловую систему /proc, а также с помощью (не рекомендуется) системного вызова sysctl(2).
/proc/sys/abi (начиная с Linux 2.4.10)
Этот каталог может содержать файлы информацию об исполнении приложений (application binary information). Дополнительную информацию смотрите в файле исходного кода ядра Documentation/sysctl/abi.txt.
/proc/sys/debug
Данный каталог может быть пуст.
/proc/sys/dev
Данный каталог содержит информацию, специфичную для устройств (например, dev/cdrom/info). В некоторых системах он может быть пуст.
/proc/sys/fs
Подкаталог, содержащий файлы и подкаталоги с переменными ядра, касающиеся файловых систем.
/proc/sys/fs/binfmt_misc
Документацию по файлам в этом каталоге можно найти в исходном коде ядра в Documentation/binfmt_misc.txt.
/proc/sys/fs/dentry-state (начиная с Linux 2.2)
Файл содержит информацию о состоянии кэша каталогов (dcache). В нём есть шесть чисел, nr_dentry, nr_unused, age_limit (возраст в секундах), want_pages (страниц, запрошенных системой) и два пустых значения.
  • nr_dentry содержит количество отведённых dentries (элементов dcache). Это поле не используется в Linux 2.2.
  • nr_unused содержит количество неиспользуемых dentries.
  • age_limit — это возраст в секундах по истечении которого элементы dcache могут быть отозваны, когда памяти становится мало.
  • want_pages не равно нулю, если ядро вызвало shrink_dcache_pages(), а dcache ещё не сокращён (pruned).
/proc/sys/fs/dir-notify-enable
Этот файл может быть использован для включения и выключения интерфейса dnotify, описанного в fcntl(2), во всей системе. Значение 0 в этом файле отключает интерфейс, а значение 1 включает его.
/proc/sys/fs/dquot-max
Этот файл показывает максимальное количество кэшируемых элементов дисковых квот. В некоторых (2.4) системах его нет. Если число свободных кэшируемых дисковых квот является очень маленьким, а у вас в системе одновременно работает большое количество пользователей, то вам, возможно, захочется увеличить этот лимит.
/proc/sys/fs/dquot-nr
Этот файл показывает количество выделенных в использование элементов дисковых квот и количество свободных элементов дисковых квот.
/proc/sys/fs/epoll (начиная с Linux 2.6.28)
В этом каталоге содержится файл max_user_watches, который можно использовать для ограничения количества памяти ядра, потребляемой интерфейсом epoll. Подробности смотрите в epoll(7).
/proc/sys/fs/file-max
Этот файл показывает системный лимит на количество открытых файлов для всех процессов. (См. также setrlimit(2), который можно использовать, чтобы установить ограничение RLIMIT_NOFILE на количество открытых файлов файлов на процесс). Если вы получаете большое количество сообщений об ошибках о невозможности открыть файловые дескрипторы, попытайтесь увеличить это значение:

    echo 100000 > /proc/sys/fs/file-max

Константа ядра NR_OPEN устанавливает верхний лимит значения, которое может быть установлено в file-max.

Если вы увеличиваете /proc/sys/fs/file-max, то позаботьтесь увеличить /proc/sys/fs/inode-max, установив его в 3-4 раза больше, чем новое значение /proc/sys/fs/file-max, в противном случае вам может не хватить индексных дескрипторов (inodes).

Привилегированный процесс (с CAP_SYS_ADMIN) может изменять ограничение file-max.

/proc/sys/fs/file-nr
Этот файл (доступный только для чтения) показывает количество открытых файлов. Он содержит три числа: количество выделенных файловых дескрипторов, количество свободных файловых дескрипторов и максимальное количество файловых дескрипторов. Ядро выделяет файловые дескрипторы динамически, но оно не освобождает их сразу же. Если количество выделенных файлов приближается к максимальному, то вам необходимо увеличить максимальное значение. Когда количество свободных файловых дескрипторов велико и у вас не бывает неожиданных пиков использования файловых дескрипторов, вам наверняка не понадобится увеличивать максимальное значение.
/proc/sys/fs/inode-max
Этот файл содержит максимальное количество индексных дескрипторов, находящихся в памяти. В некоторых (2.4) системах, его может не быть. Это количество должно быть в 3-4 раза больше, чем максимальное значение в file-max, так как stdin, stdout и сетевым сокетам также необходимы индексные дескрипторы. Если вам регулярно не хватает индексных дескрипторов, то вам необходимо увеличить это значение.
/proc/sys/fs/inode-nr
Этот файл содержит первые два значения из inode-state.
/proc/sys/fs/inode-state
Этот файл содержит семь значений: nr_inodes, nr_free_inodes, preshrink и четыре пустых. nr_inodes — это количество индексных дескрипторов, выделенных системой. Оно может быть несколько больше, чем inode-max, потому что Linux выделяет их по полной странице за раз. nr_free_inodes представляет количество свободных индексных дескрипторов. preshrink будет ненулевым, когда nr_inodes > inode-max и системе понадобится сократить список индексных дескрипторов, вместо выделения новых.
/proc/sys/fs/inotify (начиная с Linux 2.6.13)
Этот каталог содержит файлы max_queued_events, max_user_instances, и max_user_watches, которые можно использовать для ограничения количества памяти ядра, потребляемом интерфейсом inotify. Подробней смотрите в inotify(7).
/proc/sys/fs/lease-break-time
В этом файле задаётся период, в течении которого, ядро предоставляет процессу возможность удерживать файл (fcntl(2)), по окончании которого оно посылает сигнал процессу, извещая его о том, что другой процесс ожидает открытия этого файла. Если удерживающий файл процесс не удалит или не отменит удержание файла в течении указанного периода, то ядро принудительно снимет удержание.
/proc/sys/fs/leases-enable
Этот файл можно использовать, чтобы разрешить или запретить в системе возможность удержания файла (fcntl(2)). Если файл содержит 0, удержание запрещено. Если не ноль — разрешено.
/proc/sys/fs/mqueue (начиная с Linux 2.6.6)
В этом каталоге содержатся файлы msg_max, msgsize_max и queues_max, которые контролируют ресурсы, используемые очередями сообщений POSIX. Подробней смотрите в mq_overview(7).
/proc/sys/fs/overflowgid и /proc/sys/fs/overflowuid
Эти файлы позволяют вам изменить значение фиксированных UID и GID. По умолчанию оно равно 65534. Некоторые файловые системы поддерживают только 16-битные UID и GID, в то время как в Linux UID и GID являются 32-битными. Когда монтируется одна из таких файловых систем с правами, позволяющими запись, все UID или GID, которые превышают 65535, транслируются перед записью на диск в значения переполнения.
/proc/sys/fs/pipe-max-size (начиная с Linux 2.6.35)
Значение в этом файле определяет максимальное ограничение увеличения ёмкости канала с помощью операции F_SETPIPE_SZ вызова fcntl(2). Это ограничение накладывается только на непривилегированные процессы. Значение по умолчанию в файле равно 1,048,576. Значение в этом файле может округляться в большую сторону, отражая фактически используемое значение для удобства реализации. Для определения округлённого значение, посмотрите содержимое этого файла после записи в него значения. Минимальное значение, которое можно присвоить, равно значению страницы в системе.
/proc/sys/fs/suid_dumpable (начиная с Linux 2.6.13)
Значение в этом файле определяет будут ли создаваться файлы дампа памяти для файлов с установленным битом set-user-ID или других защищённых/с добавкой (tainted) исполняемых файлов. Можно указать три целых значения:

0 (по умолчанию) Традиционное поведение ( до Linux 2.6.13). Дамп памяти не создаётся для процесса, у которого изменены учётные данные (вызовом seteuid(2), setgid(2) и подобным или при исполнении программы с установленными битами set-user-ID или set-group-ID) или если для исполняемого файла нет права на чтение.

1 ("для отладки") Если возможно, создавать дамп памяти для любого процесса. Дамп памяти будет принадлежать пользователю с ID владельца выполнявшегося процесса, и никаких мер безопасности предпринято не будет. Предназначено только для системной отладки. Ptrace не проверяется.

2 ("suidsafe") Дамп памяти будет выполняться для любого исполняемого файла, для которого обычно это не происходит (см. "0" ранее) и будет доступен на чтение только суперпользователю. Файл с дампом памяти обычный пользователь может удалять, но не читать. По соображениям безопасности дампы памяти в этом режиме не будут перезаписываться новыми или другими файлами. Этот режим подходит для администраторов, когда администраторы пытаются разобраться с проблемами в обычном окружении.

/proc/sys/fs/super-max
Этот файл управляет максимальным значением суперблоков и таким образом максимальным количеством файловых систем, которое может смонтировать ядро. Вам необходимо увеличивать super-max только в том случае, если нужно смонтировать больше файловых систем, чем это позволяет значение в файле super-max.
/proc/sys/fs/super-nr
Этот файл содержит количество файловых систем, которое смонтировано в данный момент.
/proc/sys/kernel
В этом каталоге содержатся файлы, контролирующие набор параметров ядра, описанных далее.
/proc/sys/kernel/acct
В этом файле содержатся три числа: highwater, lowwater и frequency. Если включён учёт процессов в стиле BSD, то эти значения управляют его поведением. Если свободного места на файловой системе, куда осуществляется протоколирование учёта становится меньше, чем lowwater процентов, то учёт процессов приостанавливается. Если свободного места становится больше, чем highwater процентов, то учёт процессов возобновляется. Значение frequency определяет как часто ядро проверяет свободное место (в секундах). По умолчанию значения соответственно составляют 4, 2 и 30. Таким образом, приостановка учёта осуществляется, если свободно менее 2% места на диске; возобновление если места больше или равно 4%; информация о свободном месте обновляется каждые 30 секунд.
/proc/sys/kernel/cap-bound (с Linux 2.2 до 2.6.24)
Этот файл содержит набор привязанных мандатов ядра (выражаемый как десятичные числа со знаком). Этот набор мандатов, предоставляемых процессу во время execve(2), которые складываются посредством битового умножения (AND). Начиная с Linux 2.6.25, глобального набора привязанных мандатов больше нет, теперь свой набор привязанных мандатов есть у каждой нити; смотрите capabilities(7).
/proc/sys/kernel/core_pattern
Смотрите core(5).
/proc/sys/kernel/core_uses_pid
Смотрите core(5).
/proc/sys/kernel/ctrl-alt-del
Этот файл управляет обработкой нажатия клавиш Ctrl-Alt-Del. Когда значение в этом файле равно 0, Ctrl-Alt-Del обрабатывается и производит вызов программы init(8) для выполнения контролируемого перезапуска системы. Когда значение в файле больше 0, реакция Linux соответствует Vulcan Nerve Pinch (tm) [коронный приём расы Vulcan, см. сериал Star Trek], согласно которому произойдёт немедленная перезагрузка, даже без синхронизации буферов дисков. Замечание: когда какая-либо программа (типа dosemu) работает с клавиатурой "напрямую", нажатие ctrl-alt-del обработается этой программой, до того как оно достигнет уровня tty ядра и, таким образом, именно эта программа будет решать, что делать.
/proc/sys/kernel/hotplug
Этот файл содержит путь для агента политики устройств. По умолчанию это файл "/sbin/hotplug".
/proc/sys/kernel/domainname и /proc/sys/kernel/hostname
могут быть использованы для установки имени домена службы NIS/YP и имени узла вашей машины точно таким же образом как и командами domainname(1) и hostname(1), т.е.:


# echo 'darkstar' > /proc/sys/kernel/hostname
# echo 'mydomain' > /proc/sys/kernel/domainname

выполнят тоже самое, что и команды


# hostname 'darkstar'
# domainname 'mydomain'

Однако заметим, что классический darkstar.frop.org имеет имя узла "darkstar" и доменное имя DNS (Сервера Доменных Имен) "frop.org", не путайте с доменным именем NIS (Службы Сетевой Информации) или как она раньше называлась YP (Yellow Pages). Эти два доменных имени полностью различны по своей сути. Подробности об это можно найти в справочной странице hostname(1).

/proc/sys/kernel/htab-reclaim
(только для PowerPC) Если значение в этом файле установлено в ненулевое значение, то PowerPC htab (см. файл Documentation/powerpc/ppc_htab.txt в исходном коде ядра) сокращается каждый раз, когда система входит в цикл простоя.
/proc/sys/kernel/l2cr
(только для PowerPC) Этот файл содержит флаг, который управляет кэшем L2 на процессорных платах G3. Если 0, кэш выключен. Если не ноль, то включен.
/proc/sys/kernel/modprobe
В этом файле содержится путь к загрузчику модулей ядра. Значение по умолчанию равно /sbin/modprobe. Файл существует только, если ядро собрано с параметром CONFIG_KMOD. Он описан в файле Documentation/kmod.txt из дерева исходного кода ядра (есть только в ядре версии 2.4 и более ранних).
/proc/sys/kernel/msgmax
Этот файл определяет системный лимит на максимальное число байт в одном сообщении, которое пишется в очередь сообщений System V.
/proc/sys/kernel/msgmni
Этот файл определяет системное ограничение на количество идентификаторов в очереди сообщений (есть только в Linux 2.4 и новее).
/proc/sys/kernel/msgmnb
Этот файл определяет системный параметр, используемый при начальной настройке msg_qbytes для последовательно создаваемых очередей сообщений. Настройка msg_qbytes задаёт максимальное число байт, которые могут быть записаны в очередь сообщений.
/proc/sys/kernel/ostype и /proc/sys/kernel/osrelease
Эти файлы содержат подстроки из /proc/version.
/proc/sys/kernel/overflowgid и /proc/sys/kernel/overflowuid
Эти файлы дублируют файлы /proc/sys/fs/overflowgid и /proc/sys/fs/overflowuid.
/proc/sys/kernel/panic
Этот файл предоставляет доступ на чтение и запись к переменной ядра panic_timeout. Если значение в файле равно нулю, ядро будет зацикливаться при крахе системы по panic; если не ноль, то это означает, что ядро должно выполнить автоматическую перезагрузку после этого количества секунд. Когда вы используете программный драйвер устройства watchdog (устройство, периодически делающее проверку, что система функционирует), то рекомендуется установить значение 60.
/proc/sys/kernel/panic_on_oops (начиная с Linux 2.5.68)
Этот файл управляет поведением ядра, когда случается oops или BUG. Если файл содержит 0, то система пытается продолжить работу. Если содержит 1, то система выполняет задержку на несколько секунд (чтобы дать время klogd записать вывод oops) и затем генерирует крах системы через panic. Если файл /proc/sys/kernel/panic также содержит ненулевое значение, то машина будет перезагружена.
/proc/sys/kernel/pid_max (начиная с Linux 2.5.34)
Этот файл задаёт значение, после которого идентификаторы процессов (PID) начинают использоваться с начала (значение в этом файле на единицу больше, чем максимальный PID). По умолчанию, значение в этом файле составляет 32768, т.е. означает тот же самый диапазон PID-ов, что и в ранних ядрах. На 32-битных платформах — 32768 — максимальное значение pid_max. На 64-битных платформах pid_max может принимать любое значение до 2^22 (PID_MAX_LIMIT, приблизительно 4 миллиона).
/proc/sys/kernel/powersave-nap (только на PowerPC)
Этот файл содержит флаг. Если он установлен Linux-PPC будет использовать режим "nap" для энергосбережения, в противном случае будет использоваться режим "doze".
/proc/sys/kernel/printk
В файле есть четыре значения: console_loglevel, default_message_loglevel, minimum_console_level и default_console_loglevel. Эти значения влияют на поведение printk() при выдаче или протоколировании сообщений об ошибках. Подробности о различных уровнях протоколирования см. в syslog(2). Сообщения с более высоким приоритетом чемconsole_loglevel будут выданы на консоль. Сообщения без явно заданного приоритета будут выданы с приоритетом default_message_level. minimum_console_loglevel — это минимальное (наивысшее) значение, которое может иметь console_loglevel. default_console_loglevel — это значение по умолчанию для console_loglevel.
/proc/sys/kernel/pty (начиная с Linux 2.6.4)
В этом каталоге содержится два файла, отражающих количество псевдо-терминалов UNIX 98 (см. pts(4)) в системе.
/proc/sys/kernel/pty/max
Этот файл определяет максимальное количество псевдо-терминалов.
/proc/sys/kernel/pty/nr
Файл доступен только для чтения, показывает количество используемых в данный момент псевдо-терминалов.
/proc/sys/kernel/random
Этот каталог содержит различные параметры, управляющие работой файла /dev/random. Дополнительную информацию смотрите в random(4).
/proc/sys/kernel/real-root-dev
Этот файл описывается в файле исходного кода ядра Documentation/initrd.txt.
/proc/sys/kernel/reboot-cmd (только на Sparc)
Этот файл, вероятно, является способом задания аргументов для начального загрузчика SPARC ROM/Flash. Способ сказать ему, что делать после перезагрузки?
/proc/sys/kernel/rtsig-max
(Только в ядре 2.6.7 и более ранних; см. setrlimit(2)) Этот файл может быть использован для настройки максимального количества сигналов реального времени POSIX (в очереди), которое может воспринять система.
/proc/sys/kernel/rtsig-nr
(Только в ядре 2.6.7 и более ранних) Этот файл показывает количество сигналов реального времени POSIX, которые в настоящий момент находятся в очереди.
/proc/sys/kernel/sem (начиная с Linux 2.4)
Этот файл содержит 4 значения, описывающих ограничения семафоров System V IPC. Вот эти значения по порядку:
Максимальное количество семафоров в одном списке семафоров.
Системный лимит на количество семафоров во всех списках семафоров.
Максимальное количество операций, которое может быть указано в вызове semop(2).
Системный лимит на максимальное количество идентификаторов семафоров.
/proc/sys/kernel/sg-big-buff
Этот файл показывает размер буфера стандартного SCSI устройства (sg). Вы не можете пока настраивать его, но его можно изменить при компиляции ядра, исправив include/scsi/sg.h, изменив в нём значение SG_BIG_BUFF. Однако, в этом, как правило, нет необходимости.
/proc/sys/kernel/shmall
Этот файл содержит системный лимит на общее количество страниц общей памяти по стандарту System V.
/proc/sys/kernel/shmmax
Этот файл может быть использован для опроса и установки ограничения максимального размера сегмента общей памяти по стандарту System V во время выполнения. В настоящий момент ядро поддерживает сегменты общей памяти до 1ГБ. Значение по умолчанию равно SHMMAX.
/proc/sys/kernel/shmmni
Задаёт максимальное системное ограничение на количество создаваемых общих сегментов памяти по стандарту System V (доступен в Linux 2.4 и новее).
/proc/sys/kernel/sysrq
Этот файл контролирует функции, которые можно вызывать по клавише SysRq. По умолчанию в нём содержится 1, которая означает, что разрешены любые возможные запросы SysRq (в старых ядрах SysRq по умолчанию выключена, и её требовалось явно включать при работе, но теперь этого больше не требуется.). Возможные значения:


0 - отключить sysrq полностью
1 - включить все функции sysrq
>1 - маска битов разрешённых функций sysrq:
2 - включить управление уровнем протоколирования на консоль
4 - включить управление клавиатурой (SAK, unraw)
8 - включить отладочные дампы процессов и т.д.
16 - включить команду sync
32 - включить перемонтирование только для чтения
64 - включить отправку сигналов процессам (term, kill, oom-kill)
128 - разрешить перезагрузку/выключение
256 - разрешить изменение приоритета всех задач времени выполнения

Этот файл существует только, если включён параметр сборки ядра CONFIG_MAGIC_SYSRQ. Дополнительную информацию можно найти в исходном коде ядра в файле Documentation/sysrq.txt.

/proc/sys/kernel/version
Этот файл содержит строку, подобную:


#5 Wed Feb 25 21:49:24 MET 1998

Часть "#5" означает, что это пятая сборка ядра из исходной базы, а далее указана дата и время сборки ядра.

/proc/sys/kernel/threads-max (начиная с Linux 2.3.11)
Этот файл определяет системный лимит на количество нитей (задач), которое может быть создано в системе.
/proc/sys/kernel/zero-paged (только на PowerPC)
Этот файл содержит флаг. Когда он установлен (не ноль), Linux-PPC будет размещать пре-нулевые страницы в цикле простоя, что возможно увеличит скорость выполнения get_free_pages.
/proc/sys/net
Этот каталог содержит некоторую информацию по функционированию сетевой подсистемы. Описание некоторых файлов в этом каталоге можно найти в tcp(7) и ip(7).
/proc/sys/net/core/somaxconn
Этот файл определяет наименьшее значение параметра backlog системного вызова listen(2); подробности смотрите в справочной странице listen(2).
/proc/sys/proc
Данный каталог может быть пуст.
/proc/sys/sunrpc
Данный каталог поддерживает удалённый вызов процедур Sun для сетевой файловой системы (NFS). В некоторых системах его нет.
/proc/sys/vm
Этот каталог содержит файлы для тонкой настройки управления памятью, буферами и кэшем.
/proc/sys/vm/drop_caches (начиная с Linux 2.6.16)
Запись в этот файл заставляет ядро удалить (drop) данные кэшей , dentries и inodes из памяти, выполняя при этом освобождения памяти.

Чтобы освободить pagecache, используйте команду echo 1 > /proc/sys/vm/drop_caches; чтобы освободить dentries и inodes, используйте команду echo 2 > /proc/sys/vm/drop_caches; чтобы освободить команду pagecache, dentries и inodes, используйте команду echo 3 > /proc/sys/vm/drop_caches.

Так как это неразрушающая операция и изменившиеся (dirty) объекты не свободны, пользователь сначала должен запустить команду sync(8).

/proc/sys/vm/legacy_va_layout (начиная с Linux 2.6.9)
Если не равно нулю, то новая раскладка 32-битного отображения памяти выключается; ядро будет использовать старую (2.4) раскладку для всех процессов.
/proc/sys/vm/memory_failure_early_kill (начиная с Linux 2.6.32)
Управляет, как завершать процессы, когда неисправленная ошибка памяти (обычно, 2-битная ошибка в модуле памяти), которая не может быть обработана ядром, обнаружена в фоновом режиме аппаратным обеспечением. В некоторых случаях (например, когда страница имеет правильную копию на диске), ядро может может прозрачно исправить ошибку без влияния на приложения. Но если актуальной копии данных нет, то ядро завершит процесс, чтобы остановить распространение повреждения данных.

В файле содержатся следующие значения:

1:
При обнаружении завершать все процессы, у которых есть повреждённые и не восстановимые с диска страницы. Заметим, что это поддерживается не для всех типов страниц, например для внутренних данных ядра или кэша подкачки, но работает для большинства пользовательских страниц.
0:
Только отключить отображение повреждённой страницы у у всех процессов и завершать только процессы, которые пытаются к ней обратиться.
Такое завершение выполняется с использованием сигнала SIGBUS с установления значения si_code равным BUS_MCEERR_AO. Процессы могут обработать такую ситуацию, если захотят; подробней см. sigaction(2).

Это свойство активно только на архитектурах/платформах с дополнительными проверки и зависит от возможностей аппаратного обеспечения.

Приложения могут изменить настройку memory_failure_early_kill для себя с помощью операции PR_MCE_KILL вызова prctl(2).

Доступен только, если ядро собрано с поддержкой CONFIG_MEMORY_FAILURE.
/proc/sys/vm/memory_failure_recovery (начиная с Linux 2.6.32)
Включает восстановление отказов памяти (если поддерживается платформой)
1:
Пытаться восстановить.
0:
При отказе памяти всегда доводить до паники.
Доступен только, если ядро собрано с поддержкой CONFIG_MEMORY_FAILURE.
/proc/sys/vm/oom_dump_tasks (начиная с Linux 2.6.25)
Включает системный дамп задач (исключая ядерные нити), который создаётся когда ядро выполняет OOM-killing. Дамп включает следующую информацию по каждой задаче (нити, процессу): ID нити, реальный ID пользователя, ID группы нитей (ID процесса), размер виртуальной памяти, размер резидентной настройки, процессор, на котором работала задача, счётчик oom_adj (описание смотрите в /proc/[pid]/oom_adj) и имя команды. Эти данные полезны для определения того, почему был вызван OOM-killer и нахождения экземпляра задачи, его вызвавшего.

Если в файле содержится нулевое значение, то информация не выдаётся. На очень больших системах с тысячами задач дамп информации о состоянии памяти может быть неосуществим по каждой задаче. Системы не должны страдать от потери производительности из-за возникновения ситуаций с OOM, если такая информация ненужна.

Если задано ненулевое значение, то эта информация показывается в момент когда OOM-killer завершает захватившую память задачу.

Значение по умолчанию равно 0.

/proc/sys/vm/oom_kill_allocating_task (начиная с Linux 2.6.24)
Включает или выключает задачу завершения при OOM (исчерпание свободной памяти).

Если это значение равно нулю, то OOM-killer будет сканировать весь список задач и выбирать задачу для завершения на основе набора эвристических правил. Обычно выбирается задача, которая больше всех захватила памяти, что при её завершении позволит освободить огромное количество памяти.

Если это значение не равно нулю, то OOM-killer просто завершит задачу, из-за которой возникла ситуация нехватки памяти. Это позволяет избежать затратной операции сканирования списка задач.

Если /proc/sys/vm/panic_on_oom не равно нулю, то оно имеет приоритет над значением из /proc/sys/vm/oom_kill_allocating_task.

Значение по умолчанию равно 0.

/proc/sys/vm/overcommit_memory
Этот файл содержит значение режима учёта виртуальной памяти ядра. Значения:
0: эвристический перерасход (значение по умолчанию)
1: всегда разрешать перерасход, не проверять
2: всегда проверять, запретить перерасход
В режиме 0, вызовы mmap(2) с MAP_NORESERVE не проверяются, и проверка по умолчанию очень поверхностная, что может привести к завершению процесса с помощью OOM-killer. В Linux 2.4 любое ненулевое значение подразумевает режим 1. В режиме 2 (доступен начиная с Linux 2.6), общее виртуальное адресное пространство системы ограничено величиной SS + RAM*(r/100), где SS — это размер пространства подкачки, RAM — это размер физической памяти, а r — это значение из файла /proc/sys/vm/overcommit_ratio.
/proc/sys/vm/overcommit_ratio
Смотрите описание /proc/sys/vm/overcommit_memory.
/proc/sys/vm/panic_on_oom (начиная с Linux 2.6.18)
Включает или отключает панику ядра при нехватке памяти.

Если значение равно 0, то ядерный OOM-killer завершит какой-нибудь вышедший из подчинения процесс. Обычно, OOM-killer способен завершить такой процесс и система продолжит работу.

Если значение в файле равно 1, то ядро, обычно, переходит в состояние паники при нехватке памяти. Однако, если процесс ограничен в выделении определённых элементов (nodes) согласно политике памяти (mbind(2) MPOL_BIND) или процессора (cpuset(7)) и предел таких элементов памяти был достигнут, то такой процесс может быть завершён OOM-killer. В этом случае состояние паники не возникнет, так как другие элементы памяти могут освободиться, что означает, что система в целом может не прийти к ситуации нехватки памяти.

Если значение в файле равно 2, то ядро всегда переходит в состояние паники, когда возникает нехватка памяти.

Значение по умолчанию равно 0. Значение 1 и 2 используются для отказоустойчивости кластеров. Выберите любое согласно вашей политике отказоустойчивости.

/proc/sys/vm/swappiness
Значение в этом файле определяет, насколько активно ядро будет вытеснять страницы в пространство подкачки. Большие значения увеличивают активность, меньшие значения сокращают активность. По умолчанию значение равно 60.
/proc/sysrq-trigger (начиная с Linux 2.4.21)
Запись символа в этот файл приводит к вызову функции SysRq, как если бы была нажата ALT-SysRq-<клавиша> (смотрите описание /proc/sys/kernel/sysrq). Обычно, этот файл доступен на запись только root. Дополнительную информацию смотрите в исходном коде ядра в файле Documentation/sysrq.txt.
/proc/sysvipc
Подкаталог содержит псевдо-файлы msg, sem и shm.Эти файлы описывают объекты межпроцессного взаимодействия (System V Interprocess Communication (IPC)) (соответственно: очереди сообщений, семафоры и общую память), которые существуют в системе в настоящий момент. Похожая информация предоставляется через ipcs(1). Эти файлы имеют заголовки и форматируются (по одному IPC объекту на строку) для более лёгкого понимания. svipc(7) представляет подготовительный материал по информации, которую показывают эти файлы.
/proc/tty
Подкаталог, содержащий псевдо-файлы и подкаталоги драйверов tty и параметры линий.
/proc/uptime
Этот файл содержит два числа: время работы системы с момента загрузки (в секундах) и общее время, которое система провела в состоянии простоя (в секундах).
/proc/version
Строка, идентифицирующая версию ядра, которое запущено в данный момент. Она включает содержимое /proc/sys/kernel/ostype, /proc/sys/kernel/osrelease и /proc/sys/kernel/version. Пример:

Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
/proc/vmstat (начиная с Linux 2.6)
Этот файл содержит различную статистику по виртуальной памяти.
/proc/zoneinfo (начиная с Linux 2.6.13)
Этот файл содержит информацию о зонах памяти. Он полезен при анализе поведения виртуальной памяти.

ЗАМЕЧАНИЯ

Много строк (например, окружение и командная строка) хранятся во внутреннем формате с полями, завершающимися нулевыми байтами ('\0'), поэтому они будут более читаемыми, если вы воспользуетесь командой od -c или tr "\000" "\n". Команда echo `cat <file>` также хорошо работает.

Данная справочная страница неполна, в ней могут быть неточности и является одной из страниц, которую требуется обновлять очень часто.

СМОТРИТЕ ТАКЖЕ

cat(1), dmesg(1), find(1), free(1), ps(1), tr(1), uptime(1), chroot(2), mmap(2), readlink(2), syslog(2), slabinfo(5), hier(7), time(7), arp(8), hdparm(8), ifconfig(8), init(8), lsmod(8), lspci(8), mount(8), netstat(8), procinfo(8), route(8)
Файлы из дерева исходного кода ядра: Documentation/filesystems/proc.txt, Documentation/sysctl/vm.txt

2012-05-03 Linux